package com.dp1.deliversoft.entidad;

import java.util.ArrayList;

public class Ruta {
	int idRuta;
	ArrayList<Pedido> pedidos;
	double costoRuta;
	int costoRutaEnKms;
	Vehiculo vehiculo;
	double horasRetraso;

	public double getHorasRetraso() {
		return horasRetraso;
	}

	public void setHorasRetraso(double horasRetraso) {
		this.horasRetraso = horasRetraso;
	}


	public Ruta() {
		super();
		pedidos = new ArrayList<Pedido>();
		vehiculo = new Vehiculo();
		horasRetraso=0;
	}
	
	

	public Vehiculo getVehiculo() {
		return vehiculo;
	}

	public int cantPaquetes() {
		int cantPaquetes = 0;
		
		for (Pedido pedido: pedidos){
			cantPaquetes += pedido.getCantPaquetes();
		}
		return cantPaquetes;
	}


	public ArrayList<Integer> calcularCentroX(Mapa mapa) {
		ArrayList<Integer> a = new ArrayList<Integer>(4);
		int minx = mapa.getMaxX()+25;
		int maxx = -25;
		int miny = mapa.getMaxY()+25;
		int maxy = -25;
		
		for (Pedido pedido: pedidos)
		{
			if(minx>=pedido.getPosX())
			{
				minx = pedido.getPosX();
			}
			if (maxx<pedido.getPosX())
			{
				maxx=pedido.getPosX();
			}
			if(miny>=pedido.getPosY())
			{
				miny = pedido.getPosY();
			}
			if(maxy<pedido.getPosY())
			{
				maxy = pedido.getPosY();
			}
			
		}
		a.add((maxx-minx)/2);
		a.add((maxy-miny)/2);
		return a;
	}
	
	public void cabenMasPedidos()
	{
		
	}
	
	public void setVehiculo(Vehiculo vehiculo) {
		this.vehiculo = vehiculo;
	}

	public int getCostoRutaEnKms() {
		return costoRutaEnKms;
	}

	public void setCostoRutaEnKms(int costoRutaEnKms) {
		this.costoRutaEnKms = costoRutaEnKms;
	}

	public int getIdRuta() {
		return idRuta;
	}

	public void setIdRuta(int idRuta) {
		this.idRuta = idRuta;
	}

	public ArrayList<Pedido> getPedidos() {
		return pedidos;
	}

	public void setPedidos(ArrayList<Pedido> pedidos) {
		this.pedidos = pedidos;
	}

	public Pedido getPedidoById(int i) {
		return pedidos.get(i);
	}

	public double getCostoRuta() {
		return costoRuta;
	}

	public void setCostoRuta(double costoRuta) {
		this.costoRuta = costoRuta;
	}
	
	public void anadirCasaAruta(Pedido p) {
		pedidos.add(p);
	}
	/*
	public boolean cabePedidoEnVehiculo(Pedido p, Vehiculo v){
		if (v.getTipoVehiculo()==Constantes.tipoAuto){
			if (p.cantPaquetes <= (Vehiculo.capacidadAuto-this.pedidosContenidos)){
				return true;
			}
			else
				return false;
		}
		else if (v.getTipoVehiculo()==Constantes.tipoMoto){
			if (p.cantPaquetes <= (Vehiculo.capacidadMoto-this.pedidosContenidos)){
				return true;
			}
			else
				return false;
		}
		else
		{
			return false;
		}
	}*/
}
